<?php namespace Home\Controller;

use Common\Model\Article;
use Common\Model\Category;
use Common\Model\ArcTag;
use Common\Model\Tag;

class ListsController extends CommonController{
	
	public function __init(){

		parent::__init();
	}
	
	public function index(){
		$cid=Q('get.cid',0,'intval');
		$tid=Q('get.tid',0,'intval');
//		文章表
		$arcModel=new Article;
//		分类表
		$categoryModel=new Category;
//		中间表
		$arctagModel=new ArcTag;
		
//		如果点击的是分类
		if($cid){
//			获取顶部title的数据
			$headData=array(
//				分类的名字
				'cateName'=>$categoryModel->where('cid',$cid)->pluck('cname'),
//				分类中文章的数量
				'arcNum'=>$arcModel->where("category_cid={$cid} AND is_recycle=0")->count(),
//				是分类还是标签
				'type'=>'分类'
			);
			
//			获取在此分类中的文章数据
//			将此分类的子集，以及本身的cid压入$cids中
//			获取子集的cid
			$allData=$categoryModel->get();
			$cids=$categoryModel->getSon($allData,$cid);
//			压入自己本身的cid
			$cids[]=$cid;
//			将数组转换成字符串
			$str=implode(',', $cids);
//			关联文章表和分类表获取该分类下的文章
			$data=$arcModel->join('category','category_cid','=','cid')->where("category_cid IN (".$str.") AND is_recycle=0")->orderBy('sendtime','DESC')->get();
//			var_dump($data);die;
//			var_dump($v);die;
//			循环$data，获取每篇文章对应的标签,压入到$data[$k]['tag']中
//			$data['$k']不能换成$v，
//			因为换成$v以后压入不到$data里面，
//			循环遍历的$data
			foreach($data as $k=>$v){
				$data[$k]['tag']=$arctagModel->join('tag','tag_tid','=','tid')->where('article_aid',$v['aid'])->lists('tid,tname');
				
			}
//			var_dump($v);die;
//			var_dump($data);die;
		}
		
		
//		如果是标签的话
		if($tid){
			$tagModel=new Tag;
//			获取头部的数据
			$headData=array(
//			标签的名字
				'cateName'=>$tagModel->where('tid',$tid)->pluck('tname'),
//			获取标签对应文章数目
				'arcNum'=>$arcModel->join('article_tag','aid','=','article_aid')->where("tag_tid={$tid} AND is_recycle=0")->count(),
//			类型	
				'type'=>'标签'
			);
			
//			获取标签对用所有文章的aid
			$aids=$arctagModel->where('tag_tid',$tid)->lists('article_aid');
//			根据aids获取对应的文章
			$str=implode(',', $aids);
			if($aids){
				$data=$arcModel->join('category','category_cid','=','cid')->where("aid IN (".$str.") AND is_recycle=0")->orderBy('sendtime','DESC')->get();

			}else{
				$data=array();
			}
//			循环$data压入文章对应得标签
			foreach($data as $k=>$v){
				$data[$k]['tag']=$arctagModel->join('tag','tag_tid','=','tid')->where('article_aid',$v['aid'])->lists('tid,tname');
				
			}
			
			
		}
		
		View::with('headData',$headData);
		View::with('data',$data);
		View::make();
	}
}

